package com.itheima_06;

import java.util.function.Predicate;

/*
    Predicate<T>:
        default Predicate<T> and (Predicate other):返回一个组合判断，对应短路与
        default Predicate<T> or (Predicate other):返回一个组合判断，对应短路或
 */
public class PredicateDemo02 {
    public static void main(String[] args) {
        boolean b1 = checkString("hello",s -> s.length()>8,s -> s.length()<15);
        System.out.println(b1);
        boolean b2 = checkString("helloWorld",s -> s.length()>8,s -> s.length()<15);
        System.out.println(b2);
    }

    //同一个字符串给出两种不同的判断条件，最后把这两个判断的结果做逻辑与运算的结果作为最终的结果
    private static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2) {
        //逻辑与
//        return pre1.and(pre2).test(s);
        //逻辑或
        return pre1.or(pre2).test(s);
    }
}
